// 导入 IRoute 类型定义
import { IRoute } from "@/vite-env";

/**
 * 根据路径从路由数组中查找当前匹配的路由。
 *
 * @param routes - 路由数组，包含多个路由对象。
 * @param path - 要匹配的路径。
 * @returns 匹配的路由对象，如果没有匹配到则返回 null。
 */
export const getCurrentRoute = (routes: IRoute[], path: string) => {
  // 遍历路由数组
  for (const route of routes) {
    // 匹配当前路由的路径
    if (route.path === path) {
      // 如果当前路由的路径与目标路径匹配，则返回该路由
      return route;
    }

    // 如果当前路由有子路由
    if (route.children) {
      // 递归调用 getCurrentRoute 函数，在子路由中查找匹配的路由
      const childRoute = getCurrentRoute(route.children, path);
      // 如果在子路由中找到了匹配的路由
      if (childRoute) {
        // 返回匹配的子路由
        return childRoute;
      }
    }
  }

  // 如果没有匹配到任何路由，返回 null
  return null;
};
